查看原文
其他

企业网络安全之入侵检测数据模型

计算机与网络安全 计算机与网络安全 2022-06-01

一次性付费进群,长期免费索取教程,没有费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:460500587


微信公众号:计算机与网络安全

ID:Computer-network

入侵检测攻防对抗中,通常我们的做法是对每一类攻击场景给出检测规则,防守方往往处于被动的境地,因为攻方有太多的绕过与逃逸手段,使得我们面对大量的漏洞攻击手法而手足无措。下面通过对入侵场景的细致分析,转换视角来帮助大家扭转防守方的被动局面。


1、“我们的”战场


说起攻防对抗,大家很熟悉的一句话是:“攻击只需一点即可得手,而防守必须全面设防”。可见多数时候,防守方很被动。防守方其实是有优势的。无论坏人多么狡猾,他也是在我们的主场作战。我的系统我做主,孙猴子再怎么折腾也逃不出如来佛的五指山。


目前常见的攻击手法都是针对目标的Web系统,或主机系统层面。既然整个战场所在的操作系统以及网络设备均是防守方的,理论上我们可以在任意纬度构建安全产品和制定安全策略,相对来说攻击行为则处一个较低纬度领域的活动。如何理解这个纬度呢,我们先用一张图来展示我们的战场纬度,如图1所示。

图1  战场纵深视图

2、高维防守


攻防双方在同一纬度时,攻击者会有很多途径实现攻击,而防守策略必须不断地叠加来封堵,往往疲于奔命。像杀毒软件或各色IPS\IDS那样不断累加特征码的方式,在互联网公司安全团队有限的人力资源条件下,去做这么一件需长年累月投入人力且收效未必很好的事是非常不可取的。


如何让策略足够完备呢,基于系统的机制、CGI和协议规范是较为靠谱的,比我们不断用新规则、新策略去为之前的策略打“补丁”来靠谱的多。因为一切攻击与防守所需的基本功能与基本逻辑基于此。


无论什么入侵行为,都对应着更高一纬度的系统功能和能力支持。在我们的主场,为什么放着这些有利的条件不用呢。与攻击者针尖对麦芒地在低纬度对抗,犹如遭受了《三体》中的“降维攻击”,是不明智的做法。


在制定策略前,先分析一下入侵场景中如“webshell上传”在各个纬度都有哪些事件发生,如图2所示。

图2  webshell上传在各纬度事件

3、策略实践


梳理清楚了“webshell上传”这个场景在各纬度的技术细节,如何制定不易绕过的策略就相对容易了。


网络层,不用去考虑添加N个规则去应对诸如“XXeditor上传漏洞”、“XXCMS上传漏洞”,要知道无论什么漏洞和哪种猥琐的攻击,总是要符合HTTP协议,那从高纬度的HTTP协议入手,“检测符合RFC1867标准的上传CGI行为”:

CGI层,无论什么CGI漏洞导致的上传,漏洞代码几乎都用fopen等写文件的操作,这里我们关注fopen等写CGI文件的API事件即可;

系统用户态,通过检测系统层面的API调用行为,比如写模式open CGI(创建),来发现webshell上传几乎对于攻击者来说几乎很难绕过检测了,除非websvr直接是root启动且能加载任意代码;

系统内核态,通过内核inotify事件来发现CGI创建行为,在这一层我们甚至不担心root启动的websvr加载恶意代码带来的可能的逃逸检测,至少在完成后续的攻击之前的可疑行为必定被发现:

总结之后,我们的检测系统如图3所示,有了立体纵深结构。

图3  高维防守

4、近身防守


通常供攻击者施展的漏洞利用或攻击渠道能做的事情毕竟有限,防守方在高一纬度对事件的观察与检测让攻击方很难逃逸。但也要注意一点,对入侵\漏洞场景的细致分析,以及入侵场景关键环节的提炼也是策略制定的关键,否则也会陷入不断为旧策略打补丁的尴尬境地。


要解决一个入侵场景,在制定策略之前做好足够的分析并提炼其最核心的技术点,贴近此特征制定策略效果就非常好,且不易被绕过。下面选择两个Linux系统常见的木马场景和案例来说明。

熟悉恶意代码取证的朋友应该清楚常见的反连木马,‘核心’代码部分一般是这样的:


connect(sockfd, (struct sockaddr *)&cliaddr, sizeof(struct sockaddr));

dup2(sockfd, 1);

dup2(sockfd, 2);

execve("/bin/sh","sh",envp);


那我们检测十分简单,通常一个bash进程是不会有网络连接的,所以检测策略是bash的STDIN STDOUT绑定了socket则为木马,如图4所示。

图4  常规Linux反连shell检测思路

但有一些老练的攻击者的代码则不会那么偷懒,譬如mod_rootme这个木马,为了复用Apache的监听端口以及获得root权限的shell,在代码逻辑上做了很多精巧的变换组合,使得检测不可能象前述那类普通木马一样方便。TSRC官微曾经有分享过如何发现mod_rootme这类极为隐蔽的后门,如图5所示。再狡猾的后门也有异于系统正常行为的地方,根据异常行为建立策略是相比那类签名特征更为靠谱的检测手段。

图5  Mod_rootme检测思路

安全设备与检测系统布置在合适的纬度使得防守处于非常有利的位置,同时尽可能的提炼入侵场景的关键环节,则是检测思想的精髓。


甲方安全团队尽量避免做看似大而全,针对每一类漏洞黑客攻击手法制定策略的思路。而要针对自身业务特点,分析其主要风险,针对性的制定策略。将有限的资源用于对抗清晰的风险场景,是更为可取且有效率的事。

微信公众号:计算机与网络安全

ID:Computer-network

【推荐书籍】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存